11. objekt orientierte programmierung
11.4 umgang mit objekten
referenzieren
Beim erzeugen eines objekts erhält man in einer variablen eine referenz
(zeiger) auf das objekt. Man kann diese variable kopieren, die kopie
enthält dann keine kopie des objekts, sondern wiederum nur eine referenz
auf das objekt. Gewonnen hat man eine zweite variable, mit der man auf das
objekt zugreifen kann.
kopieren
Man kann keine eigene methode bauen, mit der man von einem objekt eine
kopie mit einem anderen namen erzeugen kann. Aber es gibt einen notbehelf:
man schreibt eine methode, mit der ein neues objekt erzeugt wird und
überträgt dann die eigenschaften eines anderen objekts ganz oder teilweise
auf das neue objekt. Die methode muss als static deklariert werden
(vgl beispiel).
klon
Mit der standard-methode clone kann man tatsächlich eine völlig
identische kopie, einen echten klon eines objekts erzeugen. Die methode
hat den namen __clone wird aber einfach mit clone aufgerufen
und die variable mit der referenz des zu klonenden objekts wird nicht als
parameter übergeben (in runden klammern) sondern einfach hinter den aufruf
geschrieben (sehr merkwürdig).
$neu = clone $alt;
$neu | name einer variablen der eine referenz auf das geklonte objekt zugewiesen wird. |
$alt | name einer variablen, die eine referenz auf ein vorhandenes objekt enthält |
Wenn die klassen-definition die methode __clone enthält, wird beim klonen diese methode ausgeführt und man kann dabei an dem geklonten objekt noch änderungen vornehmen (vgl. beispiel). Wenn die methode nicht in der klassen-definition definiert ist, wird trotzdem geklont.
beispiel
Die definition der klasse Person enthält eine klassen-konstante und
eine statische eigenschaft, die verwendet werden, wie bei 11.3.4. Auch die
funktionen construct und aendern zeigen nichts neues. Der statischen
methode kopieren werden als parameter eine variable mit einer
referenz und zwei zeichenketten übergeben. Mit den zeichenketten wird ein
neues objekt erzeugt, das dann zum teil eigenschaft des objekts erhält, auf
die referenz verweist. Mit der standard-methode __clone wird ein
objekt geklont, dann werden seine eigenschaften zum teil geändert, u.a. mit
hilfe der statischen variablen $nr die identifikation. Zu beachten
ist, dass die anzeige der objekte vollständig in die klassen-definition
verlegt ist. Dazu wird der methode ausgabe die adresse eines feldes
übergeben, in dem alle referenzen gespeichert sind. Die methode entnimmt
der reihe nach die referenzen dem feld und ruft damit die methode
anzeige auf. Natürlich hätte man die anweisungen der methode
anzeige auch in die methode ausgabe stellen können, aber es
soll hier ja ein wenig mit den möglichkeiten gespielt werden.
Bei der verarbeitung werden zunächst drei objekte erzeugt und ihre referenzen im feld $alle gespeichert. Bemerkenswert ist die indizierung mit hilfe der statischen variablen $alle[Person::$nr] die variable enthält nach dem erzeugen eines objekts die laufende nummer des objekts. Mit der methode ändern werden an den eigenschaften der objekte änderungen vorgenommen. Schließlich wird mit der methode kopieren das objekt $fall2 in das neue objekt $fall4 kopiert und dort etwas abgeändert. Zuletzt wird das objekt $fall3 als $fall5 geklont.
objekte original
im FC Mau gibt es 3 mitglieder
nr | name | vorname | abteilung | beitrag |
---|---|---|---|---|
1001 | Valentin | Karl | FC Mau - | 0.00 |
1002 | Karlstadt | Liesel | FC Mau - | 0.00 |
1003 | Rembremerdeng | Wrdlbrmft | FC Mau - | 0.00 |
objekte geändert
im FC Mau gibt es 3 mitglieder
nr | name | vorname | abteilung | beitrag |
---|---|---|---|---|
1001 | Valentin | Karl | FC Mau - 3 | 15.80 |
1002 | Karlstadt | Liesel | FC Mau - 2 | 20.00 |
1003 | Rembremerdeng | Wrdlbrmft | FC Mau - 1 | 10.50 |
objekte nach kopieren und klonen
im FC Mau gibt es 5 mitglieder
nr | name | vorname | abteilung | beitrag |
---|---|---|---|---|
1001 | Valentin | Karl | FC Mau - 3 | 15.80 |
1002 | Karlstadt | Liesel | FC Mau - 2 | 20.00 |
1003 | Rembremerdeng | Wrdlbrmft | FC Mau - 1 | 10.50 |
1004 | Karlstadt-Quatsch | Elvira | FC Mau - 2 | 20.00 |
1005 | Rembremerdeng-geklont | Wrdlbrmft | FC Mau - 1 | 10.50 |
H T M L |
C S S |
p h p |
My S Q L |
JAVASCRIPT |
impressum
Für den inhalt der homepage hartard-bernhard.de
ist im sinne des pressegesetzes verantwortlich:
Bernhard Hartard
Gerhart-Hauptmann-Ring 18
81737 München
089 / 670 39 90
familie.hartard@t-online.de
salvatorische erklärung
Die seiten meiner homepage enthalten links
zu anderen seiten im Internet, auf deren gestaltung und inhalt ich
keinen einfluss habe. Ich übernehme keine gewähr für den inhalt der
verlinkten seiten, rechtsverstöße waren für mich zum zeitpunkt der
verlinkung auf diesen seiten nicht erkennbar, eine ständige inhaltliche
kontrolle der verlinkten seiten ist mir weder möglich noch zumutbar.
Aus rechtlichen gründen distanziere ich mich ausdrücklich vom inhalt
der verlinkten seiten und mache mir deren inhalt nicht zu eigen.
Diese erklärung gilt für alle auf meinen seiten angezeigten links.
CLOSE anzeige schließen
start
Damit startet die homepage neu, d.h. der Steinbeisser treibt wieder sein unwesen.
anfang
Hier beginnen die informationen dieser homepage
zur person
Hier findet man informationen zur person des verfassers dieser homepage, wer er ist, woher er kommt, was er gelernt hat und was er im verlauf seines lebens so getrieben hat.
spiele
Hier finden man einige spiele, aber keine wüsten ballerspiele, sondern einige echte knobeleien (hirn-jogging), zwei gesellschaftsspiele (Mensch ärgere Dich nicht, Kniffel) und das spiel aller frechen schüler: schiffe versenken.
galerien
Ein wenig heimatliebe muss erlaubt sein und deshalb findet man hier einige bildergalerien von Speyer und von seinem Dom.
backbuch
Das ist eine sammlung von backrezepten, aus verschiedenen quellen zusammengetragen und fast alle mit mehr oder weniger erfolg ausprobiert. Da findet man in den endlosen weiten des Internet natürlich mehr und besseres.
stammbaum
Das gehört eigentlich in den privaten bereich dieser homepage, denn hier wird der stammbaum des verfassers der homepage gezeigt. Weil aber beim testen der anwendung auch der stammbaum der Wittelsbacher entstanden ist, wurde beides hier veröffentlicht. Vielleicht interessiert es jemand.
exit
Hier kann man Google oder eine beliebige seite im Internet aufrufen oder diese homepage verlassen.
kontakt
Hier kann man dem verfasser und eigentümer der homepage eine email schreiben.
privat
Hier kommt man in den privaten bereich der homepage, besser gesagt, man kommt da nicht hinein, denn dieser bereich ist geschützt und nur dem eigentümer der homepage zugänglich.
doku
Hier sind die programmiertechniken dokumentiert, mit deren hilfe die homepage gebastelt wurde. Genauer gesagt man findet hier kurz gefasste bechreibungen von HTML, CSS, MySQL und Javascript. Das findet man im Internet natürlich viel ausführlicher aber für einen ersten einstieg in die seltsame welt der programmierung sind diese beschreibungen durchaus brauchbar.